#运算符是Python中执行算术或逻辑计算的特殊符号。运算符所操作的值称为操作数。

"""算术运算符"""

#算术运算符用于执行数学运算，例如加法，减法，乘法等。
"""
+	加 - 两个操作数相加或一元加	x + y + 2
-	减 - 从左侧或一元减号，减去右侧操作数	x-y- 2
*	乘 -将两个操作数相乘	x * y
/	除 - 将左边操作数除以右边操作数（结果总是为float）	x / y
%	求模 -左操作数除以右操作数的余数	x％y（x / y的余数）
//	取整除 - 返回商的整数部分（向下取整）	x // y
**	幂 - 返回x的y次幂	x ** y（x的y次幂）
"""
x = 15
y = 4

# 输出: x + y = 19
print('x + y =',x+y)

# 输出: x - y = 11
print('x - y =',x-y)

# 输出: x * y = 60
print('x * y =',x*y)

# 输出: x / y = 3.75
print('x / y =',x/y)

# 输出: x // y = 3
print('x // y =',x//y)

# 输出: x ** y = 50625
print('x ** y =',x**y)

"""比较运算符"""

"""
比较运算符用于比较值。它返回True或False根据条件返回。

>	大于-如果左操作数大于右操作数，则为True	x> y
<	小于-如果左操作数小于右操作数，则为True	x <y
==	等于-如果两个操作数相等，则为True	x == y
!=	不等于-如果操作数不相等则为True	x！= y
>=	大于或等于-如果左操作数大于或等于右，则为True	x> = y
<=	小于或等于-如果左操作数小于或等于右，则为True	x <= y
"""

x = 10
y = 12

# 输出: x > y 是 False
print('x > y 是 ',x>y)

# 输出: x < y 是 True
print('x < y 是 ',x<y)

# 输出: x == y 是 False
print('x == y 是 ',x==y)

# 输出: x != y 是 True
print('x != y 是 ',x!=y)

# 输出: x >= y 是 False
print('x >= y 是 ',x>=y)

# 输出: x <= y 是 True
print('x <= y 是 ',x<=y)

"""逻辑运算符"""


#逻辑运算符是and,or,not运营商。
"""
and	如果两个操作数都为真，则为真	x和y
or	如果任何一个操作数为真，则为真	x或y
not	如果操作数为false,则为True(对操作数进行补充) 不是x
"""

x = True
y = False

print('x and y 是 ',x and y)

print('x or y 是 ',x or y)

print('not x 是 ',not x)

"""位运算符"""

#按位运算符作用于操作数，就好像它们是二进制数字的字符串一样。它们一点一点地运行，因此得名。
#例如，2是10二进制，7是111。

#在下表中：令x= 10（0000 1010二进制）和y= 4（0000 0100二进制）
"""
&	按位与	x&y = 0(0000 0000)
|	按位或	x | y = 14(0000 1110)
~	按位非	〜x = -11(1111 0101)
^	按位异或	x ^ y = 14(0000 1110)
>>	按位右移	x >> 2 = 2(0000 0010)
<<	按位左移	x << 2 = 40(0010 1000)
"""

"""赋值运算符"""

#在Python中使用赋值运算符为变量赋值。
#a = 5是一个简单的赋值运算符，它将右边的值5分配给左边的变量a。
#Python中有许多类似的复合运算符，a += 5它们会添加到变量中，然后再分配给它们。等同于a = a + 5。

"""
=	x = 5	x = 5
+=	x + = 5	x = x + 5
-=	x-= 5	x = x-5
*=	x * = 5	x = x * 5
/=	x / = 5	x = x / 5
%=	x%= 5	x = x%5
//=	x // = 5	x = x // 5
**=	x ** = 5	x = x ** 5
&=	x&= 5	x = x&5
|=	x | = 5	x = x | 5
^=	x ^ = 5	x = x ^ 5
>>=	x >> = 5	x = x >> 5
<<=	x << = 5	x = x << 5
"""

"""特殊运算符"""

#Python语言提供了一些特殊类型的运算符，例如身份运算符或成员资格运算符。下面通过示例对其进行描述。

#身份运算符
#is和is not是Python中的身份运算符。 它们用于检查两个值（或变量）是否位于内存的同一部分。 两个相等的变量并不意味着它们是相同的。

"""
is	如果操作数相同，则为真（引用同一对象）	x为真
is not	如果操作数不相同，则为真（不引用同一对象）	x不是真
"""

x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]

# 输出: False
print(x1 is not y1)

# 输出: True
print(x2 is y2)

# 输出: False
print(x3 is y3)

#在这里，我们看到x1和y1是相同值的整数，因此它们既相等又相同。x2和y2（字符串）的情况相同。
#但是x3和y3是列表。它们是相等的但不相同。这是因为尽管它们相等，但解释器还是将它们分别定位在内存中。

#成员运算符
#in和not in是Python中的成员操作符。它们用于测试在序列（字符串，列表，元组，集合和字典）中是否找到值或变量。
#在字典中，我们只能测试键的存在，而不是值。

"""
in	如果在序列中找到值/变量，则为真	5 in x
not in	如果在序列中未找到值/变量，则为真	5 not in x
"""

x = 'Hello world'
y = {1:'a',2:'b'}

# 输出: True
print('H' in x)

# 输出: True
print('hello' not in x)

# 输出: True
print(1 in y)

# 输出: False
print('a' in y)

#这里，'H'在x中，但'hello'在x中不存在(请记住，Python是区分大小写的)。类似地，1是键值，而a是字典y中的值，因此y中的a返回False。